/**
 * 日期工具类 - 重构版本
 * 使用统一的时间处理逻辑，专为中国用户优化
 */

// 导入统一的时间工具
import { 
  formatLocalDate, 
  formatShortDate,
  formatLocalDateTime,
  formatRelativeTime as formatRelativeTimeLocal, 
  getDateStatus as getDateStatusLocal,
  getDateStatusText,
  getDateStatusStyle,
  isToday,
  isTomorrow,
  isOverdue
} from './timeUtils'

// 保持向后兼容的API
export const formatDate = (date: Date | string | null | undefined): string => {
  if (!date) return '无日期'
  return formatShortDate(date)
}

export const formatTime = (date: Date | string | null | undefined): string => {
  if (!date) return ''
  
  const dateObj = typeof date === 'string' ? new Date(date) : date
  
  if (isNaN(dateObj.getTime())) return ''
  
  // 检查是否是只有日期的字符串格式 (YYYY-MM-DD)
  if (typeof date === 'string' && /^\d{4}-\d{2}-\d{2}$/.test(date)) {
    return '' // 只有日期的字符串，不显示时间
  }
  
  return dateObj.toLocaleTimeString('zh-CN', {
    hour: '2-digit',
    minute: '2-digit',
    hour12: false
  })
}

export const formatDateTime = (date: Date | string | null | undefined): string => {
  if (!date) return '无日期'
  
  // 检查是否是只有日期的字符串格式
  if (typeof date === 'string' && /^\d{4}-\d{2}-\d{2}$/.test(date)) {
    return formatDate(date) // 只显示日期
  }
  
  return formatLocalDateTime(date)
}

export const formatRelativeTime = formatRelativeTimeLocal

export const getDateStatus = (date: Date | string | null | undefined): 'overdue' | 'today' | 'tomorrow' | 'upcoming' | 'none' => {
  if (!date) return 'none'
  
  const status = getDateStatusLocal(date)
  return status
}

// 新增的便捷函数
export { 
  formatLocalDate,
  formatShortDate, 
  formatLocalDateTime,
  getDateStatusText, 
  getDateStatusStyle,
  isToday,
  isTomorrow,
  isOverdue
}